// readOnly的使用
class ReadOnlyClass {
  public readonly name: string
  constructor(_name: string) {
    this.name = _name
  }
}
let name1 = new ReadOnlyClass('read')
console.log(name1.name)

// 抽象类,只能被继承
// 接口里面的所有属性和方法都是抽象的，如果实现接口，则必须将接口中的所有属性和方法实现
// 接口可以被接口继承（extends），可以被类实现（implements）
abstract class AbClass {
  // 非抽象方法
  getAge(): string {
    return '123'
  }
  //抽象方法
  abstract getName(): string
}

// 子类如果继承了抽象类，必须实现其中的抽象方法
class Ab1 extends AbClass {
  getName() {
    return 'geo'
  }
}
